Technical Q&A QA1326
QuickTime Effects - How to set up parameter description values when using kParameterTypeDataImage

Q:QuickTime ÉGÉtÉFÉNÉgÇÃíÜÇ≈ÉGÉtÉFÉNÉgÉpÉâÉÅÅ[É^ÉfÅ[É^å^Çà kParameterTypeDataImage ÇégópǵÇΩÇ¢ÇÃÇ≈Ç∑Ç™ÅADZÇÃÉfÅ[É^å^Ç…Ç®ÇØÇÈ kParameterDataDefaultItemÅAkParameterDataBehaviorÅAkParameterDataRange ÇÃäeÉAÉgÉÄÇÃílÇê›íËÇ∑ÇÈï˚ñ@Çê‡ñæÇ∑ÇÈï∂èëÇ™å©ìñÇΩÇËÇ‹ÇπÇÒÅB

A:ÉGÉtÉFÉNÉgÉpÉâÉÅÅ[É^Çà kParameterDataType ÉAÉgÉÄÇÕÅAëŒâûÇ∑ÇÈÉGÉtÉFÉNÉgÉpÉâÉÅÅ[É^ÇÃÉfÅ[É^ÇÃÉ^ÉCÉvÇíËã`ǵNjÇ∑ÅBÉfÅ[É^å^ kParameterTypeDataImage ÇÕÅAÉCÉÅÅ[ÉWÉfÅ[É^Ç÷ÇÃéQèΔÇéwíËǵNjÇ∑ÅB

kParameterTypeDataImage ÇÉpÉâÉÅÅ[É^ÉfÅ[É^å^ÇΔǵǃégópÇ∑ÇÈÇΔÇ´ÅAà»â∫ÇÃÉKÉCÉhÉâÉCÉìÇ…è]ǡǃÅAëŒâûÇ∑ÇÈÉpÉâÉÅÅ[É^ãLèqÉAÉgÉÄÇê›íËǵNjÇ∑ÅB

  • kParameterDataRangeÅFDZÇÍÇÕ ImageRangeRecord Ç≈džÇËÅAëŒâûÇ∑ÇÈÉGÉtÉFÉNÉgÉpÉâÉÅÅ[É^Ç™éÊÇËìæÇÈílÇÃóLå¯îÕàÕÇíËã`ǵNjÇ∑ÅBDZÇÃÉåÉRÅ[ÉhÇÃç≈èâÇÃÉtÉBÅ[ÉãÉhÇ≈džÇÈ imageFlags ÇÃílÇÕ 0ÅiÉ[ÉçÅjÇ…ê›íËǵNjÇ∑ÅBDZÇÃílÇÕ kParameterImageNoFlags ÇΔǢǧíËêîÇΔǵǃíËã`Ç≥ÇÍǃǢNjÇ∑ÅB

  • kParameterDataBehaviorÅFDZÇÃÉAÉgÉÄÇÕÅAÉGÉtÉFÉNÉgÉpÉâÉÅÅ[É^ÇÉNÉâÉCÉAÉìÉgÉAÉvÉäÉPÅ[ÉVÉáÉìǙǫÇÃÇÊǧDžï\é¶Ç∑ÇÈÇ◊Ç´Ç©Çé¶ÇµÇ‹Ç∑ÅBç≈èâÇÃÉtÉBÅ[ÉãÉhÇ≈džÇÈ behaviorType ÇÃílÇÕ kParameterItemDragImage Ç…ê›íËǵNjÇ∑ÅBDZÇÍÇ…ÇÊÇËÅAÉRÉìÉgÉçÅ[ÉãÇ…êVǵǢÉCÉÅÅ[ÉWÇÉhÉâÉbÉOÇ∑ÇÈDZÇΔÇ≈ÉCÉÅÅ[ÉWÇïœçXÇ≈Ç´ÇÈÇÊǧDžǻÇËÇ‹Ç∑ÅBbehaviorFlags ÉtÉBÅ[ÉãÉhÇÃílÇÕ 0ÅikParameterImageNoFlags ÅjDžǵNjÇ∑ÅB

  • kParameterDataDefaultItemÅFDZÇÃÉAÉgÉÄÇÕÅAÉpÉâÉÅÅ[É^ÇÃÉfÉtÉHÉãÉgílÇï€éùǵÅAñ≥ínÇÃêFÇ‹ÇΩÇÕ PICT ÉCÉÅÅ[ÉWÉfÅ[É^ÇéwíËÇ∑ÇÈ 3 ǬÇà short å^ÇÃílÇ≈džÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

    ÉfÉtÉHÉãÉgçÄñ⁄ÅikParameterDataDefaultItem ÅjÇÃÉTÉCÉYÇ™ Picture ÇÃç≈è¨ÉTÉCÉYÇÊÇËè¨Ç≥Ç¢èÍçáÅi10 ÉoÉCÉgñ¢ñûÅBQuickDraw.h éQèΔÅjÅAQuickTime ÇÕÉfÅ[É^Ç™ñ≥ínÇÃêFÇ≈džÇÈÇΔå©Ç»ÇµÇƒÉfÉtÉHÉãÉgÉCÉÅÅ[ÉWÇçÏê¨ÇµÇ‹Ç∑ÅB

    ÉfÉtÉHÉãÉgçÄñ⁄ÅikParameterDataDefaultItem ÅjÇÃÉTÉCÉYÇ™ Picture ÇÃç≈è¨ÉTÉCÉYÇÊÇËëÂÇ´Ç¢èÍçáÅi10 ÉoÉCÉgà»è„ÅBQuickDraw.h éQèΔÅjÅAQuickTime ÇÕçÄñ⁄Ç…óLå¯Ç» PICT ÉfÅ[É^Ç™ä‹Ç‹ÇÍǃǢÇÈLJÇÃÇΔå©Ç»ÇµÇƒÉfÉtÉHÉãÉgÉCÉÅÅ[ÉWÇÃçÏê¨Ç…égópǵNjÇ∑ÅB

DZÇÍÇÁÇÃíËêîÇÕÅAÇŸÇ©ÇÃÉGÉtÉFÉNÉgÉpÉâÉÅÅ[É^ÉåÉRÅ[ÉhÅAÉtÉâÉOÅAÇ®ÇÊÇ—ílÇΔÇΔLJDž ImageCodec.h Ç…íËã`Ç≥ÇÍǃǢNjÇ∑ÅB

à»â∫ÇÃÉäÉXÉgÇ…ÅAÉfÅ[É^å^Ç™ kParameterTypeDataImage ÇÃÇΔÇ´Ç…ÅAQuickTime Ç™ëŒâûÇ∑ÇÈÉpÉâÉÅÅ[É^ÉAÉgÉÄÇê›íËÇ∑ÇÈï˚ñ@Çé¶ÇµÇ‹Ç∑ÅBÉäÉXÉg 1 ÇÕÅAÅuÉäÉbÉvÉãÅvÉGÉtÉFÉNÉgÇÃÇΩÇflÇÃÉäÉbÉvÉãÉ}ÉXÉNÇ…ëŒâûÇ∑ÇÈLJÇÃÇ≈ÅAÉäÉXÉg 2 ÇÕÅAÅuåXéŒÉèÉCÉvÅvÉGÉtÉFÉNÉgÇÃÇΩÇflÇÃÉ}ÉbÉgÇ…ëŒâûÇ∑ÇÈLJÇÃÇ≈Ç∑ÅB

ÉäÉXÉg 1. ÉäÉbÉvÉãÉGÉtÉFÉNÉgópÇà kParameterTypeDataImage

// --------------------
    // É}ÉXÉN
    kParameterAtomTypeAndID, 104, noChildren,
    {
        OSType { "mask" };
        long { "1" };
        kAtomNotInterpolated;
        string { "Ripple mask" };
    };
    
    kParameterDataType, 104, noChildren,
    {
        kParameterTypeDataImage;
    };
                
    kParameterDataRange, 104, noChildren,
    {
        long { "0" };
    };

    kParameterDataBehavior, 104, noChildren,
    {
        kParameterItemDragImage;
        long { "0" };
    };
        
    kParameterDataDefaultItem, 104, noChildren,
    {
        short { "0" }; // ÉuÉâÉbÉNÇ short ÇΔǵǃ
        short { "0" }; // ÉuÉâÉbÉNÇ short ÇΔǵǃ
        short { "0" }; // ÉuÉâÉbÉNÇ short ÇΔǵǃ
    };

ÉäÉXÉg 2. åXéŒÉèÉCÉvópÇà kParameterTypeDataImage

// --------------------
    // É}ÉbÉg
    kParameterAtomTypeAndID, 104, noChildren,
    {
        OSType { "matt" };
        long { "1" };
        kAtomNotInterpolated;
        string { "Matte" };
    };
    
    kParameterDataType, 104, noChildren,
    {
        kParameterTypeDataImage;
    };
                
    kParameterDataRange, 104, noChildren,
    {
        long { "0" };
    };

    kParameterDataBehavior, 104, noChildren,
    {
        kParameterItemDragImage;
        long { "0" };
    };
        
    kParameterDataDefaultItem, 104, noChildren,
    { // PICT
        lstring { 
        $"129A 0000 0000 0100 0155 0011 02FF 0C00" /*.?.......U...?.. */
        $"FFFE 0000 0048 0000 0048 0000 0000 0000" /*??...H...H...... */
        $"0100 0155 0000 0000 00A1 01F2 0016 3842" /*...U.....°.Ú..8B */
        $"494D 0000 0000 0000 0100 0155 4772 8970" /*IM.........UGr?p */
        $"68AF 626A 0001 000A 0000 0000 0100 0155" /*hÿbj...........U */
        $"0098 8158 0000 0000 0100 0155 0000 0000" /*.ÚÅX.......U.... */
        $"0000 0000 0048 0000 0048 0000 0000 0008" /*.....H...H...... */
        $"0001 0008 0000 0000 0000 0000 0000 0000" /*................ */
        $"0000 0028 0000 00FF 0000 FFFF FFFF FFFF" /*...(...?..?????? */
        $"0001 FEFE FEFE FEFE 0002 FDFD FDFD FDFD" /*..??????..?????? */
        $"0003 FCFC FCFC FCFC 0004 FBFB FBFB FBFB" /*..      ..?????? */
        $"0005 FAFA FAFA FAFA 0006 F9F9 F9F9 F9F9" /*..??????..?????? */
        $"0007 F8F8 F8F8 F8F8 0008 F7F7 F7F7 F7F7" /*..ØØØØØØ..òòòòòò */
        $"0009 F6F6 F6F6 F6F6 000A F5F5 F5F5 F5F5" /*.?àààààà..?????? */
        $"000B F4F4 F4F4 F4F4 000C F3F3 F3F3 F3F3" /*..??????..ÛÛÛÛÛÛ */
        $"000D F2F2 F2F2 F2F2 000E F1F1 F1F1 F1F1" /*.¨ÚÚÚÚÚÚ..?????? */
        $"000F F0F0 F0F0 F0F0 0010 EFEF EFEF EFEF" /*..??????..       */

     ... PICT ÉfÅ[É^Ç™ë±Ç≠ ...

       $"0006 8100 8100 A900 00FF"                 /* ..Å.Å.©..? */
       };
    };

éQçléëóøÅF


[2003 îN 12 åé 9 ì˙]